package org.example.ioc.pro1.bean;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class test {
    public static void main(String[] args) {
        //1.早期的程序
        Student student = new Student();
        student.setId(1);
        student.setName("张三");
        System.out.println(student.toString());

        //这叫控制不反转，也就是程序自己控制对象的创建和管理
        //test  依赖于 Student类的创建和管理

        //2.引入Spring的IOC容器，
        // IOC ：控制反转，  由容器来管理对象的创建和管理


        //nowaday   spring IOC机制    spring管理对象
        //自动容器，读取class路径下 beans.xml文件， 获取bean配置的对象，实例化对象，存到实例中
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        //System.out.println(  context );  //容器对象
        //从容器中获取对象
//        Student p1 = (Student) context.getBean("s");
//        System.out.println(p1);

//      //更多获取bean的方式
        //          context.getBean(Class<T> requiredType);
//        Student p2 = context.getBean( Student.class);
//        System.out.println(p2);

        //          context.getBean(String name, Class<T> requiredType);
        Student p3 = context.getBean("s", Student.class);
        System.out.println(p3);
    }

}
